Skip to content

Conversation

@kurlov
Copy link
Member

@kurlov kurlov commented Feb 4, 2026

@kurlov kurlov requested a review from a team as a code owner February 4, 2026 18:32
@kurlov kurlov requested a review from msugakov February 4, 2026 18:33
github.event.check_run.conclusion == 'failure' &&
startsWith(github.event.check_run.name, 'Red Hat Konflux')
startsWith(github.event.check_run.name, 'Red Hat Konflux') &&
!contains(github.event.check_run.pull_requests[0].labels.*.name, 'disable-konflux-auto-retest')
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we know that there is a least one PR associated with the check (see check above). My understanding is that the Konflux check might have multiple PRs only when the same commit is used in those PRs. I assume it's quite rare and unique scenario so I believe [0] is correct instead of * (we don't want to disable if at least one PR has label)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Above you have github.event.check_run.pull_requests[0] != null. How does it evaluate when there are no pull requests? MintMaker does this when we configure automerge: branch, i.e. in https://github.com/stackrox/operator-index/blob/master/.github/renovate.json5#L51

Does it evaluate as "false" or does it crash GHA with sort-of a NullPointerException or is the result of github.event.check_run.pull_requests[0] equal to undefined and the expression github.event.check_run.pull_requests[0] != null weirdly evaluates to true?

Wouldn't it be more robust to check length(github.event.check_run.pull_requests) == 1 if such thing is possible?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My bad, I didn't reflect the last changes. So the latest approach (which you have already tested in the https://github.com/stackrox/test-gh-actions/pull/240) is to pull actual label value directly from GH API instead of relying on event data. Your previous testing proofed that event data (github.event.check_run.pull_requests[0].labels.*.name) might be outdated. So I've updated the PR and also changed null check to github.event.check_run.pull_requests.length > 0

Copy link
Contributor

@msugakov msugakov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding

No description provided.

Is there any way you can test this before merging to see if it really works?

@kurlov
Copy link
Member Author

kurlov commented Feb 5, 2026

Is there any way you can test this before merging to see if it really works?

I planned to test it with this PR, but looks like konflux is not starting for that repo ATM. https://github.com/stackrox/test-gh-actions/pull/236. Looks like this testing Konflux app was deleted. I will add a new one

@msugakov
Copy link
Contributor

msugakov commented Feb 6, 2026

Copy link
Contributor

@msugakov msugakov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given now it passes testing, I've a couple of things to clarify.

github.event.check_run.conclusion == 'failure' &&
startsWith(github.event.check_run.name, 'Red Hat Konflux')
startsWith(github.event.check_run.name, 'Red Hat Konflux') &&
!contains(github.event.check_run.pull_requests[0].labels.*.name, 'disable-konflux-auto-retest')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Above you have github.event.check_run.pull_requests[0] != null. How does it evaluate when there are no pull requests? MintMaker does this when we configure automerge: branch, i.e. in https://github.com/stackrox/operator-index/blob/master/.github/renovate.json5#L51

Does it evaluate as "false" or does it crash GHA with sort-of a NullPointerException or is the result of github.event.check_run.pull_requests[0] equal to undefined and the expression github.event.check_run.pull_requests[0] != null weirdly evaluates to true?

Wouldn't it be more robust to check length(github.event.check_run.pull_requests) == 1 if such thing is possible?

@kurlov kurlov requested a review from msugakov February 10, 2026 15:24
if echo "$CURRENT_LABELS" | grep -q "^disable-konflux-auto-retest$"; then
echo "Skipping retest: disable-konflux-auto-retest label is present"
exit 0
fi
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like a new implementation that you landed 20 hours ago (according to GitHub). When I look at last comments/updates in https://github.com/stackrox/test-gh-actions/pull/240, they are from 2 days ago (according to GitHub).

Would you like to test the change?

Comment on lines +88 to +89
CURRENT_LABELS=$(gh api "repos/${{ github.repository }}/pulls/$PR_NUMBER" --jq '.labels[].name')
if echo "$CURRENT_LABELS" | grep -q "^disable-konflux-auto-retest$"; then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Why gh api, can't something like this work?
$ gh pr view --json labels --jq '.labels[].name' https://github.com/stackrox/stackrox/pull/18943
  1. Please use quoting around command substitution:
    VAR=$(command) - wrong
    VAR="$(command)" - better

  2. There's probably no need to define a variable to use it once.
    Instead of

CURRENT_LABELS="$(gh ...)"
if echo "$CURRENT_LABELS" | grep ...; then

you can write

if gh ... | grep ...; then

@@ -82,6 +82,14 @@ jobs:
RETEST_COMMAND: ${{ inputs.retest_command }}
run: |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I remembered one more thing. I believe, default shell flags in GHA aren't exactly
set -euo pipefail. I suggest set them explicitly in each step here so the behavior meets what we usually expect from shell scripts.

Suggested change
run: |
run: |
set -euo pipefail

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants